// -----------------------------
// Author: 		Dhaenens Gert 
// Creation: 	10/19/2014 2:01:58 PM				
// -----------------------------

#ifndef _InputManager_h
#define _InputManager_h

#include "Common.h"

class Application;

class InputManager
{
public:
	InputManager();
	~InputManager();

	void	Update(Application* lpApp);

	Bool	IsKeyDown(Int32 vKey) const;
	Bool	IsKeyPressed(Int32 vKey) const;
	Bool	IsKeyReleased(Int32 vKey) const;

	Vector2	GetMousePosition() const;
	Vector2	GetPreviousMousePosition() const;

private:

	static const UInt32	c_KeyCount = 256;
	Byte		m_Keys[c_KeyCount];
	Byte		m_PrevKeys[c_KeyCount];

	Vector2		m_MousePosition;
	Vector2		m_LastMousePosition;

	InputManager(const InputManager& refInputManager);
	InputManager& operator=(const InputManager& refInputManager);
};

#endif